//package com.ruoyi.kangqiao.utils.mqtt;
//
//import com.ruoyi.common.utils.StringUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.context.annotation.Bean;
//import org.springframework.scheduling.annotation.Async;
//import org.springframework.stereotype.Component;
//
//import java.util.concurrent.CompletableFuture;
//import java.util.concurrent.ExecutorService;
//import java.util.concurrent.Executors;
//
//@Component
//@ConfigurationProperties("spring.mqtt")
//public class MqttConfig {
//    @Autowired
//    private MqttPushClient mqttPushClient;
//
//    /**
//     * 用户名
//     */
//    private String username;
//    /**
//     * 密码
//     */
//    private String password;
//    /**
//     * 连接地址
//     */
//    private String hostUrl;
//    /**
//     * 客户Id
//     */
//    private String clientId;
//    /**
//     * 默认连接话题
//     */
//    private String defaultTopic;
//    /**
//     * 超时时间
//     */
//    private int timeout;
//    /**
//     * 保持连接数
//     */
//    private int keepalive;
//    /**
//     * mqtt功能使能
//     */
//    private boolean enabled;
//
//    public String getUsername() {
//        return username;
//    }
//
//    public void setUsername(String username) {
//        this.username = username;
//    }
//
//    public String getPassword() {
//        return password;
//    }
//
//    public void setPassword(String password) {
//        this.password = password;
//    }
//
//    public String getHostUrl() {
//        return hostUrl;
//    }
//
//    public void setHostUrl(String hostUrl) {
//        this.hostUrl = hostUrl;
//    }
//
//    public String getClientId() {
//        return clientId;
//    }
//
//    public void setClientId(String clientId) {
//        this.clientId = clientId;
//    }
//
//    public String getDefaultTopic() {
//        return defaultTopic;
//    }
//
//    public void setDefaultTopic(String defaultTopic) {
//        this.defaultTopic = defaultTopic;
//    }
//
//    public int getTimeout() {
//        return timeout;
//    }
//
//    public void setTimeout(int timeout) {
//        this.timeout = timeout;
//    }
//
//    public int getKeepalive() {
//        return keepalive;
//    }
//
//    public void setKeepalive(int keepalive) {
//        this.keepalive = keepalive;
//    }
//
//    public boolean isEnabled() {
//        return enabled;
//    }
//
//    public void setEnabled(boolean enabled) {
//        this.enabled = enabled;
//    }
//
//    @Bean
//    public ExecutorService taskExecutor() {
//        // 创建一个大小为1的线程池
//        return Executors.newFixedThreadPool(1);
//    }
//
//    @Async("taskExecutor")
//    @Bean
//    public CompletableFuture<MqttPushClient> getMqttPushClient() {
//        if (enabled) {
//            String[] mqtt_topic = StringUtils.split(defaultTopic, ",");
//            //在clientId后拼接时间戳外加随机字母
//            String client = this.clientId + "-" + System.currentTimeMillis();
//            //连接
//            mqttPushClient.connect(hostUrl, client, username, password, timeout, keepalive);
//            for (String str : mqtt_topic) {
//                //订阅主题
//                mqttPushClient.subscribe(str, 0);
//            }
//        }
//        return CompletableFuture.completedFuture(mqttPushClient);
//    }
//
//}
